Data storage method, data acquisition method and device thereof

ABSTRACT

Embodiments of the present application provide a data storage method, data acquisition method and device thereof. The method includes allocating an N-dimensional first parameter vector for N pieces of to-be-stored data; performing N-dimensional permutation on the first parameter vector, to obtain N second parameter vectors each having N dimensions; constructing a neural network model that maps the current second parameter vectors to expected data samples of the N pieces of to-be-stored data; adjusting model parameters of the neural network model and/or the first parameter vector until expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data, the expected data samples being obtained from the current second parameter vectors based on the trained neural network model; storing the current first parameter vector. The embodiments of the present application make the storage of the first parameter vector equivalent to storing N pieces of to-be-stored data, which reduces high-dimensional data to low-dimensional data for storage, thus greatly reducing the storage space.

The present application claims the priority to a Chinese patent application No. 201910687185.0 filed with the State Intellectual Property Office of People's Republic of China on Jul. 29, 2019 and entitled “Data Storage Method, Data Acquisition Method And Device Thereof”, which is incorporated herein by reference in its entirety.

TECHNICAL FIELD

The present application relates to the data storage field, and in particular, to a data storage method, data acquisition method and device and thereof.

BACKGROUND

Data dimension refers to the descriptive attributes or characteristics of an object. For example, a picture has 16×16 pixels; each pixel has a corresponding pixel value. That is, each pixel is a descriptive attribute of the picture, and then the picture can be regarded as having 256 data dimensions.

In order to solve the problem that the storage of a picture with high data dimensions requires large storage space, auto encoders are configured to establish a one-to-one mapping relationship between low-dimensional data and high-dimensional data. In this way, based on the stored low-dimensional data, corresponding high-dimensional data can be obtained by the auto encoder, such that the storage space can be reduced. Although this type of auto encoder reduces the data storage space to a certain extent, it still needs to store a large amount of compressed low-dimensional data while storing network model parameters of the auto encoder. In this way, if the amount of data is very large, the algorithms based on the auto encoder still require a lot of storage space.

How to further reduce the storage capacity of low-dimensional data corresponding to high-dimensional data is an urgent problem to be solved.

SUMMARY

Embodiments of the present application provide a data storage method, data acquisition method and device thereof, to reduce the storage space required for storing high-dimensional data.

An embodiment of the present application provides a data storage method, which includes:

allocating an N-dimensional first parameter vector for N pieces of to-be-stored data;

performing N-dimensional permutation on the first parameter vector, to obtain N second parameter vectors each having N dimensions;

constructing a neural network model that maps the current second parameter vectors to expected data samples of the N pieces of to-be-stored data;

adjusting model parameters of the neural network model and/or the first parameter vector until expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data, the expected data samples being obtained from the current second parameter vectors based on the trained neural network model;

storing the current first parameter vector.

Optionally, the method further includes performing N-dimensional permutation on the current first parameter vector and returning to execute the step of adjusting the model parameters of the neural network model and/or the first parameter vector if the expected data samples of the N pieces of to-be-stored data do not regress to the N pieces of to-be-stored data, wherein the expected data samples are obtained from the current second parameter vectors based on the trained neural network model.

Optionally, the method further includes classifying the N pieces of to-be-stored data according to categories, and/or assigning an identifier for each piece of the to-be-stored data and storing a corresponding relationship between the category and/or identifier and the first parameter vector;

the method further includes: storing the model parameters of the trained neural network model;

the initial values of the parameters of each dimension in the first parameter vector being obtained by sampling N pieces of to-be-stored data according to Gaussian distribution random values.

Optionally, the performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions includes: performing N-dimensional permutation on the first parameter vector through N affine transformation matrices to obtain N second parameter vectors each having N dimensions, such that one of the N second parameter vectors each having N dimensions is the same as the first parameter vector, and values of the other second parameter vectors in each dimension are different from a value of the first parameter vector in the corresponding dimension.

Optionally, the performing N-dimensional permutation on the first parameter vector through N affine transformation matrices to obtain N second parameter vectors each having N dimensions, such that one of the N second parameter vectors each having N dimensions is the same as the first parameter vector, and values of the other second parameter vectors in each dimension are different from a value of the first parameter vector in the corresponding dimension includes:

performing N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively, such that for the k-th affine transformation matrix, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, the first k−1 elements of the first parameter vector are placed at the end of the first parameter respectively, to obtain N−1 second parameter vectors each having N dimensions, where k=1, . . . N.

Optionally, the performing N-dimensional permutation on the first parameter vector through N affine transformation matrices includes:

multiplying the N affine transformation matrices by the first parameter vector respectively;

wherein, the N affine transformation matrices are N×N matrices respectively, and the element a_(ij) in each of the N affine transformation matrices satisfies:

$a_{ij} = \left\{ \begin{matrix} {1,} & {{j \geq {{k\mspace{14mu}{and}\mspace{14mu} j} - i}} = {k - 1}} \\ {1,} & {{j < {{k\mspace{14mu}{and}\mspace{14mu} j} - i}} = {k - 1 - {N.}}} \\ {0,} & {other} \end{matrix} \right.$

Optionally, the performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions includes:

exchanging, for each of the N pieces of to-be-stored data, a value of a dimension corresponding to the identifier of each piece of the to-be-stored data in the first parameter vector with a value of a first dimension in the first parameter vector, to obtain N second parameter vectors each having N dimensions.

Optionally, the exchanging, for each of the N pieces of to-be-stored data, a value of a dimension corresponding to the identifier of each piece of the to-be-stored data in the first parameter vector with a value of a first dimension in the first parameter vector, to obtain N second parameter vectors each having N dimensions includes:

performing N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively, such that for the k-th affine transformation matrix, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, the k-th element of the first parameter vector is exchanged with the first element, to obtain N−1 second parameter vectors each having N dimensions, where k represents the identifier of to-be-acquired data, k=1, . . . N.

Optionally, the performing N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively includes:

multiplying the N affine transformation matrices by the first parameter vector respectively;

wherein, the N affine transformation matrices are N×N matrices respectively, and the element a_(ij) in each of the N affine transformation matrices satisfies:

a_(1k) = 1; a_(k1) = 1; $a_{ij} = \left\{ {\begin{matrix} {1,} & {{i \neq 1},k,{{{and}\mspace{14mu} i} = j}} \\ {0,} & {other} \end{matrix}.} \right.$

Optionally, the adjusting model parameters of the neural network model and/or the first parameter vector until the expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data, which expected data samples are obtained from the current second parameter vectors based on the trained neural network model, includes:

training the module parameters of the neural network module by using the N second parameter vectors each having N dimensions as input variables of the neural network model and using output data of the neural network model as the expected data samples of the N pieces of to-be-stored data, and/or updating the first parameter vector during the training process, until the expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data.

Optionally, the training the module parameters of the neural network module and/or updating the first parameter vector during the training process until the expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data includes:

initializing the model parameters of the neural network model;

accumulating current number of iterations;

inputting the current second parameter vectors into the current neural network model to obtain current expected data samples of the N pieces of to-be-stored data, calculating a loss function of the current expected data sample and the N pieces of to-be-stored data, and optimizing the model parameters and/or the first parameter vector of the current neural network model according to the principle of making the loss function converge, to obtain model parameters of the neural network model optimized for this iteration and/or the updated first parameter vector;

using the second parameter vectors after the previous iteration as the current second parameter vectors, or performing N-dimensional permutation on the adjusted first parameter vector to obtain the second parameter vectors;

returning to execute the step of accumulating the current number of iterations until the current number of iterations reaches a predetermined number of iterations, or the loss function converges to a predetermined threshold, to obtain the model parameters of the trained neural network model and/or the updated first parameter vector.

Optionally, the neural network model is a deep learning neural network model; the loss function is a regression loss function; the affine transformation matrix is generated online according to the current k value, where k=1, . . . N.

An embodiment of the present application provides a data acquisition method, which includes:

obtaining a stored first parameter vector according to information of to-be-acquired data;

performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions, where N is the number of dimensions of the first parameter vector;

obtaining a trained neural network model used for data storage;

using the N second parameter vectors as input variables of the trained neural network model, and using output data of the trained neural network model as the to-be-acquired data.

Optionally, the obtaining a stored first parameter vector according to information of to-be-acquired data includes:

obtaining the first parameter vector according to categories and/or identifiers of the to-be-acquired data based on a corresponding relationship between the stored categories and/or identifiers and the first parameter vector;

the obtaining a trained neural network model used for data storage, including: obtaining the stored model parameters of the trained neural network model, and loading the obtained model parameters into the neural network model to obtain the trained neural network model.

Optionally, the performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions includes:

performing N-dimensional permutation on the first parameter vector through N affine transformation matrices to obtain N second parameter vectors each having N dimensions, such that one of the N second parameter vectors each having N dimensions is the same as the first parameter vector, and values of the other second parameter vectors in each dimension are different from a value of the first parameter vector in the corresponding dimension.

Optionally, the performing N-dimensional permutation on the first parameter vector through N affine transformation matrices to obtain N second parameter vectors each having N dimensions, such that one of the N second parameter vectors each having N dimensions is the same as the first parameter vector, and values of the other second parameter vectors in each dimension are different from a value of the first parameter vector in the corresponding dimension includes:

performing N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively, such that for the k-th affine transformation matrix, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, the first k−1 elements of the first parameter vector are placed at the end of the first parameter respectively, to obtain N−1 second parameter vectors each having N dimensions, where k=1, . . . N.

Optionally, the performing N-dimensional permutation on the first parameter vector through N affine transformation matrices includes:

multiplying the N affine transformation matrices by the first parameter vector respectively;

wherein, the N affine transformation matrices are N×N matrices respectively, and the element a_(ij) in each of the N affine transformation matrices satisfies:

$a_{ij} = \left\{ \begin{matrix} {1,} & {{j \geq {{k\mspace{14mu}{and}\mspace{14mu} j} - i}} = {k - 1}} \\ {1,} & {{j < {{k\mspace{14mu}{and}\mspace{14mu} j} - i}} = {k - 1 - {N.}}} \\ {0,} & {other} \end{matrix} \right.$

Optionally, the performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions includes:

exchanging a value of a dimension corresponding to the identifier of the to-be-acquired data in the first parameter vector with a value of a first dimension in the first parameter vector, to obtain N second parameter vectors each having N dimensions.

Optionally, the exchanging a value of a dimension corresponding to the identifier of the to-be-acquired data in the first parameter vector with a value of a first dimension in the first parameter vector, to obtain N second parameter vectors each having N dimensions includes:

performing N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively, such that for the k-th affine transformation matrix, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, the k-th element of the first parameter vector is exchanged with the first element, to obtain N−1 second parameter vectors each having N dimensions, where k represents the identifier of to-be-acquired data, k=1, . . . N.

Optionally, the performing N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively includes:

multiplying the N affine transformation matrices by the first parameter vector respectively;

wherein, the N affine transformation matrices are N×N matrices respectively, and the element a_(ij) in each of the N affine transformation matrices satisfies:

a_(1k) = 1; a_(k1) = 1; $a_{ij} = \left\{ {\begin{matrix} {1,} & {{i \neq 1},k,{{{and}\mspace{14mu} i} = j}} \\ {0,} & {other} \end{matrix}.} \right.$

An embodiment of the present application provides a data acquisition method, which includes:

obtaining a stored first parameter vector according to information of to-be-acquired data;

performing N-dimensional permutation on the first parameter vector to obtain N-dimensional second parameter vectors corresponding to the to-be-acquired data, where N is the number of dimensions of the first parameter vector;

obtaining a trained neural network model used for data storage;

using the second parameter vectors as input variables of the trained neural network model, and using output data of the trained neural network model as the to-be-acquired data.

An embodiment of the present application provides a data storage device, which includes:

an allocation module, configured to allocate an N-dimensional first parameter vector for N pieces of to-be-stored data;

a permutation module, configured to perform N-dimensional permutation on the first parameter vector, to obtain N second parameter vectors each having N dimensions;

a construction module, configured to construct a neural network model that maps the current second parameter vectors to expected data samples of the N pieces of to-be-stored data, adjust model parameters of the neural network model and/or the first parameter vector until the expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data, the expected data samples being obtained from the current second parameter vectors based on the trained neural network model;

a storage module, configured to store the current first parameter vector.

An embodiment of the present application provides a data acquisition device, which includes:

a first obtaining module, configured to obtain a stored first parameter vector according to information of to-be-acquired data;

a permutation module, configured to perform N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions, where N is the number of dimensions of the first parameter vector;

a second obtaining module, configured to obtain a trained neural network model used for data storage; use the N second parameter vectors as input variables of the trained neural network model, and use output data of the trained neural network model as the to-be-acquired data.

An embodiment of the present application provides a data acquisition device, which includes:

a first obtaining module, configured to obtain a stored first parameter vector according to information of to-be-acquired data;

configured to perform N-dimensional permutation on the first parameter vector to obtain N-dimensional second parameter vectors corresponding to the to-be-acquired data, where N is the number of dimensions of the first parameter vector;

a permutation module, configured to obtain a trained neural network model used for data storage

a second obtaining module, configured to use the second parameter vectors as input variables of the trained neural network model, and use output data of the trained neural network model as the to-be-acquired data.

An embodiment of the present application provides an electronic device, which includes a processor and a storage medium. The storage medium stores a computer program, which, when executed by the processor, implements the steps of any data storage methods.

An embodiment of the present application provides an electronic device, which includes a processor and a storage medium. The storage medium stores a computer program, which, when executed by the processor, implements the steps of any of the data acquisition methods.

An embodiment of the present application provides a computer-readable storage medium, in which a computer program is stored, and when the computer program is executed by a processor, the steps of any of the data storage methods are implemented.

An embodiment of the present application provides a computer-readable storage medium, in which a computer program is stored, and when the computer program is executed by a processor, the steps of any of the data acquisition methods are implemented.

An embodiment of the present application provides a computer program which, when executed by a processor, implements the steps of any of the data storage methods.

An embodiment of the present application provides a computer program which, when executed by a processor, implements the steps of any of the data acquisition methods.

In the embodiment of the present application, based on an N-dimensional first parameter vector, N N-dimensional second parameter vectors are obtained through affine transformation, and the second parameter vectors are mapped to N pieces of data corresponding to the first parameter vector through a trained neural network model, such that an N-dimensional first parameter vector is stored, which is equivalent to storing N pieces of data, multiple high-dimensional data is reduced to one low-dimensional data for storage, which greatly reduces the storage space required for storing high-dimensional data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart of a data storage method provided by an embodiment of the present application.

FIG. 2 is a flowchart of a neural network model training method provided by an embodiment of the present application.

FIG. 3 is a schematic diagram of a data mapping process involved in an embodiment of present application.

FIG. 4 is a schematic flowchart of a data acquisition method provided by an embodiment of the present application.

FIG. 5 is a schematic diagram of a data storage device provided by an embodiment of the present application.

FIG. 6 is a schematic diagram of a data acquisition device provided by an embodiment of the present application.

DETAILED DESCRIPTION OF THE INVENTION

In order to make the objective, technical solution and advantages of the present application more clear, the present application will be described below in detail in combination of the accompanying drawings.

To facilitate understanding, the words appearing in the embodiments of the present application are explained below.

Affine transformation is to perform multi-dimensional permutation on a parameter vector. That is to permutate multiple dimensions of a parameter vector.

Data dimension refers to the descriptive attributes or characteristics of an object. Among them, the data dimension is referred to as “dimension” for short.

High-dimensional data is data with a higher data dimension, for example, data whose data dimension is higher than a preset threshold.

Low-dimensional data is data with a lower data dimension, for example, data whose data dimension is lower than or equal to a preset threshold. The aforementioned preset threshold can be set according to actual needs. For example, the preset threshold may be 100, 200, and so on.

A data sample is the sample data, data to be stored is simply referred to as to-be-stored data, and an adjusted first parameter vector is an updated first parameter vector.

In order to reduce the storage space required for storing high-dimensional data, an embodiment of the present application provides a data storage method, including:

Step 11: allocating an N-dimensional first parameter vector for N pieces of to-be-stored data;

Step 12: performing N-dimensional permutation on the first parameter vector, to obtain N second parameter vectors each having N dimensions;

Step 13, constructing a neural network model that maps the current second parameter vectors to expected data samples of the N pieces of to-be-stored data;

Step 13 is to construct a neural network model, which is configured to map the current second parameter vectors to the expected data samples of the N pieces of to-be-stored data.

Step 14: adjusting model parameters of the neural network model and/or the first parameter vector until expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data, the expected data samples being obtained from the current second parameter vectors based on the trained neural network model;

Step 14 is to adjust the model parameters of the neural network model and/or the first parameter vector until the expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data, the expected data samples being obtained by the trained neural network model based on the current second parameter vectors.

Step 15: storing the current first parameter vector.

In the embodiment of the present application, in addition to the current first parameter vector, the model parameters of the trained neural network model can also be stored.

The data storage method provided in this embodiment of the application allocates an N-dimensional first parameter vector to N pieces of V-dimensional to-be-stored data, where V is greater than or equal to N, and performs permutation on the N dimensions of the first parameter vector to obtain N N-dimensional second parameter vectors, so that one first parameter vector corresponds to N second parameter vectors, uses the second parameter vectors as training samples of a neural network model, and trains the neural network model and/or adjusts the first parameter vector by optimizing a loss function through iterations. Thus, the mapping relationship between the first parameter vector and the N pieces of to-be-stored data is established, such that when the N pieces to-be-stored of data are stored, the first parameter vector and the trained neural network model parameters can be stored. The embodiment of the present application performs a determined affine transformation on the first parameter vector based on the neural network model, and realizes that one low-dimensional data can represent multiple pieces of high-dimensional data, thereby greatly reducing the storage space required for storing high-dimensional data.

Refer to FIG. 1, FIG. 1 is a flowchart of a data storage method provided by an embodiment of the present application. The storage method includes the following steps.

Step 101: for to-be-stored data having V dimensions, for the convenience of storage and query, classifying the to-be-stored data according to categories, and numbering the categories to obtain a category label; assigning an ID (Identity) for each piece of the to-be-stored data in a same category as a sample identifier of the to-be-stored data in this category of data. Wherein, one piece of to-be-stored data is one characteristic data composed of a set of characteristic values, and one piece of characteristic data can be regarded as sample data. For example, the categories of image data may include a person category, a landscape category, etc., wherein the image data of the person category may include several pieces of sample data, such as several pieces of image data including a person.

In the embodiment of the present application, it is also possible to directly assign a sample identifier to each sample data without classifying the categories of sample data.

In the embodiment of the present application, V is a positive integer, and the to-be-stored data having V dimensions may also be referred to as V-dimensional to-be-stored data.

Step 102: allocating an N-dimensional first parameter vector h₁ for N pieces of sample data {x₁, . . . , x_(N)} with different IDs:

$h_{1} = \begin{bmatrix} b_{1} \\ b_{2} \\ \ldots \\ b_{N} \end{bmatrix}$

The initial value {b₁, . . . , b_(N)} of the first parameter vector can be obtained by sampling according to Gaussian distribution random values, N is a positive integer, and V is greater than or equal to N. Optionally, V is greater than N.

In the embodiment of the present application, the initial values of the parameters of each dimension in the first parameter vector are obtained by sampling N pieces of to-be-stored data according to Gaussian distribution random values. At this time, the value of the first parameter vector in each dimension are different.

Step 103: performing permutation on the N different dimensions of the first parameter vector, to obtain N second parameter vectors h_(k) each having N dimensions, so that the first parameter vector can correspond to N samples.

The above step 103 is to perform N-dimensional permutation on the first parameter vector to obtain N second parameter vectors h_(k) each having N dimensions, so that the first parameter vector can correspond to the N second parameter vectors.

In the embodiment of the present application, the following formula can be configured to perform N-dimensional permutation on the first parameter vector:

h _(k) =A _(k) h ₁ , k=1, . . . ,N

wherein, h_(k) represents the second parameter vectors, h₁ represents the first parameter vector, A_(k) represents the affine transformation matrix, A_(k)∈R^(N×N), R^(N×N) represents a set of N×N-dimensional matrices, element a_(ij) in the i-th row and j-th column in A_(k) can be expressed by the following formula:

$a_{ij} = \left\{ \begin{matrix} {1,} & {{j \geq {{k\mspace{14mu}{and}\mspace{14mu} j} - i}} = {k - 1}} \\ {1,} & {{j < {{k\mspace{14mu}{and}\mspace{14mu} j} - i}} = {k - 1 - {N.}}} \\ {0,} & {other} \end{matrix} \right.$

In the above affine transformation matrix,

When k=1, the affine transformation matrix A_(k) is the identity matrix. At this time, the second parameter vectors h_(k) is the first parameter vector h₁.

When k≠1, the affine transformation matrix A_(k) is equivalent to the matrix obtained by putting the elements in the first k−1 row of A₁ to the end of A₁. After the above affine transformation, the second parameter vectors h_(k) is equivalent to the parameter vector obtained by putting the first k−1 elements of h₁ to the end of h₁.

In the embodiment of the present application, k may be an identifier of the sample data, or it may be obtained by transforming the identifier of the sample data according to a certain rule. Based on a value of k, an affine transformation matrix A_(k) and a second parameter vectors h_(k) can be obtained. That is, the affine transformation matrix A_(k) has a one-to-one corresponding relationship with the second parameter vectors h_(k), and the second parameter vectors has a one-to-one corresponding relationship with the to-be-stored data. Therefore, the to-be-stored data has a one-to-one corresponding relationship with the affine transformation matrix.

The second parameter vectors obtained by the above affine transformation, except for the second parameter vectors when k=1, the values of the other second parameter vectors in each dimension are different from the a value of the first parameter vector in the corresponding dimension, such as shown in FIG. 3. This affine transformation method establishes a mapping relationship from a low-dimensional parameter vector h₁ to N pieces of high-dimensional sample data {x₁, . . . , x_(N)}, which maximizes the difference between the first parameter vector and the second parameter vectors, facilitating the representation of different sample data. In the embodiment of the present application, through this mapping relationship, a low-dimensional first parameter vector can be directly stored, and then high-dimensional sample data can be restored by the first parameter vector via the above mapping relationship. Since a low-dimensional parameter vector can be mapped to obtain N pieces of high-dimensional sample data, and the number of dimensions of the low-dimensional parameter vector is lower than that of the high-dimensional sample data, the storage space required for storing high-dimensional data is greatly compressed.

In the embodiment of the present application, the ID of the sample data may be numbered in the order of 1 to N. In this way, the above-mentioned affine transformation matrix can be generated online according to the value of k or the IDs of the sample data. In this way, the affine transformation matrix does not need to occupy storage space. In addition, the affine transformation matrix may also be in other forms, as long as the affine transformation matrix is generated according to a preset rule. For example, the element a_(ij) of the affine transformation matrix A_(k)∈R^(N×N) can also be:

a_(1k) = 1 a_(k1) = 1 $a_{ij} = \left\{ {\begin{matrix} {1,} & {{i \neq 1},k,{{{and}\mspace{14mu} i} = j}} \\ {0,} & {other} \end{matrix}.} \right.$

After the above affine transformation, the second parameter vectors h_(k) is equivalent to the parameter vector obtained by exchanging the k-th element of h₁ and the first element of h1.

Step 104: constructing a neural network model, training the neural network model, and/or updating the first parameter vector during the training process, such that the trained neural network model f maps the second parameter vectors h_(k) to sample data x_(k):

x _(k) =f(h _(k)).

Wherein, f represents the trained neural network model, the second parameter vectors h_(k) is the input variable of the trained neural network model, and x_(k) is the output data of the trained neural network model. The above neural network model can be a deep neural network model, error back propagation (BP) neural network model, recurrent neural network model (Hopfield neural network model), adaptive resonance theory (ART) neural network Model or Self-Organizing Feature Mapping (SOM) neural network model, etc. The details can be determined according to the characteristics of the sample data.

Step 105: storing a corresponding relationship between the identifier ID and the first parameter vector, the first parameter vector, and the model parameters of the trained neural network model.

Step 105 is that, in step 105, the corresponding relationship between the sample IDs of the N pieces of sample data used for training the neural network model and the first parameter vector is stored, and the first parameter vector and the model parameters of the trained neural network model are stored.

In an implementation, referring to FIG. 2, FIG. 2 is a flowchart of a neural network model training method provided by an embodiment of the application.

The initial model parameters in the neural network model are configured, and sample mapping on the second parameter vectors h_(k) through the neural network model f₀ is performed to obtain the data sample {circumflex over (x)}_(k):

{circumflex over (x)} _(k) =f ₀(h _(k)).

Wherein, f represents the initial neural network model, and {circumflex over (x)}_(k) is the expected data sample recovered by the neural network model. The goal of training the neural network model is to make the expected data sample {circumflex over (x)}_(k) as close as possible to the real data sample x_(k).

The training method for the constructed neural network model may include the following steps.

Step 201, accumulating the current number of iterations.

Step 202: calculating a loss function of the current neural network model, optimizing the model parameters of the current neural network model according to the principle of making the loss function converge, obtaining the current neural network model f_(m) (m represents the number of iterations) after this optimization, and/or updating the first parameter vector according to a learning result of the neural network model, such that the first parameter vector becomes a learnable parameter vector. The calculation of the loss function can be:

=Σ∥{circumflex over (x)} _(k) −x _(k)∥₂ ².

Wherein,

represents the loss function. In the embodiment of the present application, the loss function is the sum of the squared Euclidean distances of two vectors (expected data sample and real data sample); {circumflex over (x)}_(k) is the expected data sample, and x_(k) is the real data sample, such as the to-be-stored data described above.

The aforementioned loss function may also be a type of regression loss function. For example, the aforementioned loss function may be a mean squared error loss function, a mean absolute error loss function, a smooth mean absolute error loss function, a log-hyperbolic cosine (Log-Cos h) loss function, or a quantile loss function. Specifically, it can be determined according to factors such as the characteristics of the sample data, the neural network model used, the efficiency of the iteration, and the expected data sample obtained during each iteration.

Step 203: based on the optimized current neural network model f_(m) and/or the updated first parameter vector, inputting the second parameter vectors or the updated second parameter vectors obtained by permutation based on the updated first parameter vector to the neural network model f_(m), to obtain the current expected data sample {circumflex over (x)}_(k):

{circumflex over (x)} _(k) =f _(m)(h _(k)).

Step 203 is to input the current second parameter vectors into the neural network model f_(m) based on the optimized current neural network model f_(m) and/or the updated first parameter vector to obtain the current expected data sample {circumflex over (x)}_(k). Wherein, the current second parameter vectors is the second parameter vectors after the previous iteration, or the current second parameter vectors is the second parameter vectors obtained by performing N-dimensional permutation on the updated first parameter vector.

Return to step 201, until the current number of iterations reaches a predetermined number of iterations, and/or the loss function converges to a set threshold, storing the current first parameter vector and the current model parameters, and storing the corresponding relationship between the IDs of the N pieces of sample data and the current first parameter vector.

When the training of neural network model is over, for N data samples, only the final first parameter vector after learning, the corresponding relationship between the IDs of the N pieces of sample data and the final first parameter vector, and the model parameters of the trained neural network need to be stored, thus realizing that one low-dimensional data can represent multiple pieces of high-dimensional data, thereby greatly reducing the storage space required for storing high-dimensional data.

The above step 203 can be specifically divided into the following cases:

In a first case, if the current neural network model f_(m) is optimized and the first parameter vector is not updated, then load the optimized model parameters for the neural network model f_(m), to obtain the optimized neural network model f_(m); input the second parameter vectors of the previous iteration to the optimized neural network model f_(m), to obtain the current expected data sample {circumflex over (x)}_(k).

In a second case, if the first parameter vector is updated and the current neural network model f_(m) is not optimized, then perform N-dimensional permutation on the updated first parameter vector, to obtain the updated second parameter vectors, input the updated second parameter vectors to the current neural network model f_(m), to obtain the current expected data sample {circumflex over (x)}_(k).

In a third case, if the current neural network model f_(m) is optimized and the first parameter vector is updated, then perform N-dimensional permutation on the updated first parameter vector, to obtain the updated second parameter vectors, input the updated second parameter vectors to the optimized current neural network model f_(m), to obtain the current expected data sample {circumflex over (x)}_(k).

After obtaining the expected data sample {circumflex over (x)}_(k), it is judged whether the current number of iterations reaches the predetermined number of iterations, and it is judged whether the loss function converges to the set threshold. If the current number of iterations does not reach the predetermined number of iterations, and the loss function does not converge to the set threshold, then return to step 201. If the current number of iterations reaches the predetermined number of iterations, and/or the loss function converges to the set threshold, then the current first parameter vector and current model parameters are saved, and the corresponding relationship between the IDs of the N data samples and the current first parameter vector are saved. Here, if the current number of iterations reaches the predetermined number of iterations, and/or the loss function converges to the set threshold, then the current first parameter vector is saved as the final updated first parameter vector, and the current model parameters are the final optimized model parameters.

In the embodiment of the present application, the execution order of the foregoing steps 203 and 202 is not limited. For example, step 203 may be performed first, and then step 202 may be performed.

Referring to FIG. 3, FIG. 3 is a schematic diagram of a data mapping process involved in an embodiment of the present application. Wherein, an N-dimensional first parameter vector is subjected to N-dimensional permutation through an affine transformation matrix to obtain N second parameter vectors each having N dimensions, and the N second parameter vectors are respectively input to the trained neural network model, thus N data samples {x1, . . . , xN} after mapping can be obtained.

Corresponding to the foregoing data storage method, an embodiment of the present application also provides a data acquisition method, including:

obtaining a stored first parameter vector according to information of to-be-acquired data;

performing N-dimensional permutation on the first parameter vector to obtain N-dimensional second parameter vectors corresponding to the to-be-acquired data, where N is the number of dimensions of the first parameter vector;

obtaining a trained neural network model used for data storage;

using the second parameter vectors as input variables of the trained neural network model, and using output data of the trained neural network model as the to-be-acquired data.

In the embodiment of the present application, the trained neural network model is the neural network model obtained after training in the above-mentioned data storage method. For the training process of the trained neural network model, refer to the description of the above-mentioned FIGS. 1-2 for details.

In an embodiment, the foregoing obtaining a stored first parameter vector according to information of to-be-acquired data may include:

obtaining the first parameter vector according to categories and/or identifiers of the to-be-acquired data based on a corresponding relationship between the stored categories and/or identifiers and the first parameter vector;

obtaining a trained neural network model used for data storage, including: obtaining the stored model parameters of the trained neural network model, and loading the obtained model parameters into the neural network model to obtain the trained neural network model.

In an embodiment, performing N-dimensional permutation on the first parameter vector to obtain N-dimensional second parameter vectors corresponding to the to-be-acquired data may include: performing N-dimensional permutation on the first parameter vector according to the affine transformation matrix corresponding to the to-be-acquired data, to obtain the N-dimensional second parameter vectors corresponding to the to-be-acquired data.

In an embodiment, performing N-dimensional permutation on the first parameter vector according to the affine transformation matrix corresponding to the to-be-acquired data, to obtain the N-dimensional second parameter vectors corresponding to the to-be-acquired data may include:

performing N-dimensional permutation on the first parameter vector according to an affine transformation matrix corresponding to the to-be-acquired data, such that: when the affine transformation matrix corresponding to the to-be-acquired data is the k-th affine transformation matrix, when k is equal to 1, the N-dimensional second parameter vector corresponding to the to-be-acquired data is equal to the first parameter vector; when k is not equal to 1, the second parameter vectors are obtained by placing the first k−1 elements of the first parameter vector to the end of the first parameter vector, wherein k=1, . . . N.

In an embodiment, performing N-dimensional permutation on the first parameter vector according to the affine transformation matrix corresponding to the to-be-acquired data may include:

multiplying the affine transformation matrix corresponding to the to-be-acquired data by the first parameter vector;

wherein, the affine transformation matrix is an N×N matrix, when the affine transformation matrix corresponding to the to-be-acquired data is the k-th affine transformation matrix, the element a_(ij) in each of the N affine transformation matrices corresponding to the to-be-acquired data satisfies:

$a_{ij} = \left\{ \begin{matrix} {1,} & {{j \geq {{k\mspace{14mu}{and}\mspace{14mu} j} - i}} = {k - 1}} \\ {1,} & {{j < {{k\mspace{14mu}{and}\mspace{14mu} j} - i}} = {k - 1 - {N.}}} \\ {0,} & {other} \end{matrix} \right.$

In an embodiment, performing N-dimensional permutation on the first parameter vector to obtain the N-dimensional second parameter vectors corresponding to the to-be-acquired data may include:

exchanging the value of the dimension corresponding to the identifier of the to-be-acquired data in the first parameter vector with the value of the first dimension in the first parameter vector, to obtain the N-dimensional second parameter vectors corresponding to the to-be-acquired data.

In an embodiment, exchanging the value of the dimension corresponding to the identifier of the to-be-acquired data in the first parameter vector with the value of the first dimension in the first parameter vector, to obtain the N-dimensional second parameter vectors corresponding to the to-be-acquired data may include:

performing N-dimensional permutation on the first parameter vector according to the affine transformation matrix corresponding to the to-be-acquired data, such that: when the affine transformation matrix corresponding to the to-be-acquired data is the k-th affine transformation matrix, when k is equal to 1, the N-dimensional second parameter vector corresponding to the to-be-acquired data is equal to the first parameter vector; when k is not equal to 1, the N-dimensional second parameter vectors corresponding to the to-be-acquired data are obtained by exchanging the k-th element of the first parameter vector with the first element, wherein k=1, . . . N, k represents the identifier of the to-be-acquired data.

In an embodiment, performing N-dimensional permutation on the first parameter vector according to the affine transformation matrix corresponding to the to-be-acquired data may include:

multiplying the affine transformation matrix corresponding to the to-be-acquired data by the first parameter vector;

wherein, the affine transformation matrix is an N×N matrix, when the affine transformation matrix corresponding to the to-be-acquired data is the k-th affine transformation matrix, the element as in each of the N affine transformation matrices corresponding to the to-be-acquired data satisfies:

a_(1k) = 1; a_(k1) = 1; $a_{ij} = \left\{ {\begin{matrix} {1,} & {{i \neq 1},k,{{{and}\mspace{14mu} i} = j}} \\ {0,} & {other} \end{matrix}.} \right.$

The above data acquisition method is a data acquisition method corresponding to the above data storage method. Therefore, the description of the above data acquisition method part is relatively simple, and reference can be made to the corresponding part of the description of the above data storage method.

Referring to FIG. 4, FIG. 4 is a schematic flowchart of a data acquisition method provided by an embodiment of the present application.

When the sample data needs to be acquired, according to an identifier of the sample data that needs to be acquired, the first parameter vector corresponding to the identifier is obtained. For the convenience of description, this step is referred to as step 41.

In the embodiment of the present application, a one-to-one corresponding relationship between categories and the first parameter vector may be stored, and the corresponding relationship between multiple identifiers and the first parameter vector may also be stored, that is, one first parameter vector corresponds to multiple identifiers. The first parameter vector corresponding to the category can be obtained according to the category of the sample data that needs to be acquired, and the obtained first parameter vector is used as the first parameter vector corresponding to the sample data that needs to be acquired. It is also possible to obtain the first parameter vector corresponding to an identifier according to the identifier of the sample data that needs to be acquired, and the obtained first parameter vector is used as the first parameter vector corresponding to the sample data that needs to be acquired.

In step 41, the sample data that needs to be acquired is the to-be-acquired data, and step 41 is to acquire the stored first parameter vector according to the information of the to-be-acquired data.

The second parameter vector is obtained by performing N-dimensional permutation through the affine transformation matrix according to the stored first parameter vector. The specific calculation formula is the same as in step 103. For the convenience of description, this step is referred to as step 42.

Step 42 is to perform N-dimensional permutation on the first parameter vector through the affine transformation matrix to obtain N second parameter vectors each having N dimensions.

The neural network model is loaded with the stored model parameters, that is, the neural network model used for data storage is invoked, the stored model parameters are configured to be assign to the neural network model, and the second parameter vectors are used as the input variables of the neural network model, the output result of the neural network model is the sample data that needs to be acquired. For the convenience of description, this step is referred to as step 43.

Optionally, the obtaining a stored first parameter vector according to information of to-be-acquired data may include:

obtaining the first parameter vector according to categories and/or identifiers of the to-be-acquired data based on a corresponding relationship between the stored categories and/or identifiers and the first parameter vector;

obtaining a trained neural network model used for data storage, including: obtaining the stored model parameters of the trained neural network model, and loading the obtained model parameters into the neural network model to obtain the trained neural network model.

Optionally, the performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions may include: performing N-dimensional replacement on the first parameter vector through N affine transformation matrices to obtain N second parameter vectors each having N dimensions, such that one of the N second parameter vectors each having N dimensions is the same as the first parameter vector, and values of the other second parameter vectors in each dimension are different from a value of the first parameter vector in the corresponding dimension.

Optionally, the performing N-dimensional replacement on the first parameter vector through N affine transformation matrices to obtain N second parameter vectors each having N dimensions, such that one of the N second parameter vectors each having N dimensions is the same as the first parameter vector, and values of the other second parameter vectors in each dimension are different from a value of the first parameter vector in the corresponding dimension may include:

performing N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively, such that for the k-th affine transformation matrix, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, the first k−1 elements of the first parameter vector are placed at the end of the first parameter respectively, to obtain N−1 second parameter vectors each having N dimensions, where k=1, . . . N.

Optionally, the performing N-dimensional permutation on the first parameter vector through N affine transformation matrices may include:

multiplying the N affine transformation matrices by the first parameter vector respectively;

wherein, the N affine transformation matrices are N×N matrices respectively, and the element a_(ij) in each of the N affine transformation matrices satisfies:

$a_{ij} = \left\{ \begin{matrix} {1,} & {{j \geq {{k\mspace{14mu}{and}\mspace{14mu} j} - i}} = {k - 1}} \\ {1,} & {{j < {{k\mspace{14mu}{and}\mspace{14mu} j} - i}} = {k - 1 - {N.}}} \\ {0,} & {other} \end{matrix} \right.$

Optionally, the performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions may include:

exchanging a value of a dimension corresponding to the identifier of the to-be-acquired data in the first parameter vector with a value of a first dimension in the first parameter vector, to obtain N second parameter vectors each having N dimensions.

Optionally, the exchanging a value of a dimension corresponding to the identifier of the to-be-acquired data in the first parameter vector with a value of a first dimension in the first parameter vector, to obtain N second parameter vectors each having N dimensions may include:

performing N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively, such that for the k-th affine transformation matrix, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, the k-th element of the first parameter vector is exchanged with the first element, to obtain N−1 second parameter vectors each having N dimensions, where k represents the identifier of to-be-acquired data, k=1, . . . N.

Optionally, the performing N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively includes:

multiplying the N affine transformation matrices by the first parameter vector respectively;

wherein, the N affine transformation matrices are N×N matrices respectively, and the element a_(ij) in each of the N affine transformation matrices satisfies:

a_(1k) = 1; a_(k1) = 1; $a_{ij} = \left\{ {\begin{matrix} {1,} & {{i \neq 1},k,{{{and}\mspace{14mu} i} = j}} \\ {0,} & {other} \end{matrix}.} \right.$

Through the above steps, the embodiment of the present application can quickly query the to-be-acquired data, with high data acquisition efficiency and convenient use.

To illustrate the embodiments of the present application, the storage of image data will be described as an embodiment below.

Image data includes a large number of pixels and the pixel value of each pixel, which is one of the typical high-dimensional data. For example, in an incremental learning scenario, a large number of feature maps of the images output by the middle layer of a convolutional neural network need to be used. At this time, the image data included in the feature map has a very high dimension. If the image data included in the feature map is stored directly, it will consume storage space very much.

Assume that the to-be-stored image data includes 10 pieces of image data, and each image data includes pixel values of 16×16 pixels. According to the description of the embodiments of the present application, the to-be-stored image data includes sample data with 10 different IDs, and each sample data includes 256 data dimensions.

A 10-dimensional first parameter vector h₁ is allocated to the 10 pieces of image data, and the initial values of the parameters in the vector are obtained by sampling the 10 pieces of sample data according to Gaussian distribution random values.

By performing permutation on the 10 dimensions of the first parameter vector, 10 second parameter vectors {h₁, . . . , h₁₀} each having 10 dimensions are obtained.

A deep learning neural network model is constructed and the deep learning neural network model is trained so that the trained deep learning neural network model f can map 10 10-dimensional second parameter vectors {h₁, . . . , h₁₀} to 10 pieces of image data.

Wherein, the process of training the constructed deep learning neural network model may include configuring each initial model parameter in the deep learning neural network model, and using the deep learning neural network model f₀ to perform mapping on the second parameter vectors {h₁, . . . , h₁₀}, to obtain expected data samples of 10 pieces of image data, that is, the expected image data {{circumflex over (x)}₁, {circumflex over (x)}₂, . . . , {circumflex over (x)}₁₀}.

{circumflex over (x)} _(k) =f ₀(h _(k)).

Wherein, f₀ represents the initial deep learning neural network model, {circumflex over (x)}_(k) is the expected image data of the k-th piece of image data output by the deep learning neural network model, k=1, 2, . . . 10.

The current number of iterations is accumulated.

A loss function of the current deep learning neural network model is calculated, the model parameters of the current deep learning neural network model are optimized according to the principle of making the loss function converge, and the current deep learning neural network model f_(m) (m represents the number of iterations) is obtained after this optimization, and/or the first parameter vector is updated according to the learning result of the deep learning neural network model, so that the first parameter vector becomes a learnable parameter vector. The calculation of the above loss function can be:

=Σ_(k=1) ¹⁰ ∥{circumflex over (x)} _(k) −x _(k)∥₂ ².

Wherein,

represents the loss function, x_(k) is the image data of the k-th to-be-stored image, and {circumflex over (x)}_(k) is the expected image data of the k-th piece of image data.

Based on the optimized current deep learning neural network model f_(m) and/or the updated first parameter vector, the current second parameter vector is input to the deep learning neural network model f_(m) to obtain current expected image data. Wherein, the current second parameter vector can be the second parameter vector after the previous iteration; the current second parameter vector can also be obtained by performing N-dimensional permutation on the updated first parameter vector.

Return to the step of accumulating the current number of iterations until a predetermined number of iterations is reached, and/or the loss function converges to a set threshold.

After the training of the deep learning neural network model is completed, for 10 pieces of image data, only the 10 values of the final first parameter vector after learning and the model parameters of the trained deep learning neural network model need to be stored. For the 10 pieces of to-be-stored image data, there are actually 2560 pixel values that need to be stored. It can be seen that the technical solution provided by the embodiments of the present application can greatly compress the data storage space.

Referring to FIG. 5, FIG. 5 is a schematic diagram of a data storage device according to an embodiment of the application. The device includes:

an allocation module, configured to allocate an N-dimensional first parameter vector for N pieces of to-be-stored data having at least V dimensions; wherein, initial values of each dimension of the first parameter vector are obtained by sampling N pieces of to-be-stored data respectively according to Gaussian distribution random values, V and N are natural numbers, and V is greater than or equal to N. Optionally, V is greater than or equal to N;

a permutation module, configured to perform N-dimensional permutation on the first parameter vector, to obtain N second parameter vectors each having N dimensions;

a neural network module, configured to construct a neural network model that maps the current second parameter vectors to expected data samples of the N pieces of to-be-stored data, adjust model parameters of the neural network model and/or the first parameter vector until the expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data, the expected data samples being obtained from the current second parameter vectors based on the trained neural network model;

a storage module, configured to store the current first parameter vector, the model parameters of the trained neural network model.

The above-mentioned neural network module can by referred to as a construction module.

In the embodiment of this application, for the to-be-stored data, such as image data, it contains a larger data dimension, and the N pieces of to-be-stored data with a higher storage dimension are replaced with the first parameter vector with a lower storage dimension, which saves a lot of storage space and reduces the amount of calculations.

In an embodiment, the neural network module may also be configured to: if the expected data samples of the N pieces of to-be-stored data do not regress to the N pieces of to-be-stored data, then perform N-dimensional permutation on the current first parameter vector, and return to execute the step of adjusting the model parameters of the neural network model and/or the first parameter vector, wherein the expected data samples are obtained from the current second parameter vectors based on the trained neural network model.

In an embodiment, the data storage device may further include:

a data identification module, configured to classify the N pieces of to-be-stored data according to categories, and/or assign an identifier for each piece of the to-be-stored data and store a corresponding relationship between the category and/or identifier of the N pieces to-be-stored data and the first parameter vector.

In an embodiment, the permutation module may be specifically configured to perform N-dimensional permutation on the first parameter vector through N affine transformation matrices to obtain N second parameter vectors each having N dimensions, such that one of the N second parameter vectors each having N dimensions is the same as the first parameter vector, and values of the other second parameter vectors in each dimension are different from a value of the first parameter vector in the corresponding dimension.

For example, perform N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively. For the k-th affine transformation matrix, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, the first k−1 elements of the first parameter vector are placed at the end of the first parameter respectively, to obtain N−1 second parameter vectors each having N dimensions, where k=1, . . . N.

In an embodiment, the permutation module may be specifically configured to exchange the value of the dimension corresponding to the identifier of the N pieces of to-be-acquired data in the first parameter vector with the value of the first dimension in the first parameter vector, to obtain N second parameter vectors each having N dimensions.

For example, perform N-dimensional permutation on the first parameter vector according to N affine transformation matrices respectively, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, exchange the k-th element of the first parameter vector with the first element, wherein k=1, . . . N.

In an embodiment, the permutation module may include an affine transformation matrix online generation module, which is configured to generate each affine transformation matrix online according to a preset transformation rule.

In an embodiment, the neural network module may be specifically configured to train the module parameters of the neural network module by using the N second parameter vectors each having N dimensions as input variables of the trained neural network model and using output data of the neural network model as the expected data samples of the N pieces of to-be-stored data, and/or adjust the first parameter vector during the training process until the expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data.

In an embodiment, the device may further include a training module, configured to:

initialize the model parameters of the neural network model;

accumulate the current number of iterations;

input the current second parameter vectors into the current neural network model to obtain current expected data samples of the N pieces of to-be-stored data, calculate a loss function of the current expected data sample and the to-be-stored data, and optimize the current model parameters and/or the first parameter vector of the neural network model according to the principle of making the loss function converge, to obtain the model parameters of the neural network model optimized for this iteration and/or the updated first parameter vector;

use the second parameter vectors after the previous iteration as the current second parameter vectors, or perform N-dimensional permutation on the adjusted first parameter vector to obtain the second parameter vectors, which are used as the current second parameter vectors;

return to execute the step of accumulating the current number of iterations until the current number of iterations reaches a predetermined number of iterations, or the loss function converges to a predetermined threshold, to obtain the model parameters of the trained neural network model and/or the updated first parameter vector.

In an embodiment, the neural network model is a deep learning neural network model.

Referring to FIG. 6, FIG. 6 is a schematic diagram of a data acquisition device provided by an embodiment of the present application. The device includes:

a first parameter vector obtaining module, configured to obtain a stored first parameter vector according to information of to-be-acquired data;

a permutation module, configured to perform N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions, where N is the number of dimensions of the first parameter vector, that is N is the number of data dimensions included in the first parameter vector;

a neural network model module, configured to obtain a trained neural network model used for data storage; use the N second parameter vectors as input variables of the trained neural network model, and use output data of the trained neural network model as the to-be-acquired data.

The aforementioned first parameter vector obtaining module may also be called a first obtaining module, and the neural network model module may be called a second obtaining module.

In an embodiment, the first parameter vector obtaining module may be specifically configured to obtain the first parameter vector according to categories and/or identifiers of the to-be-acquired data based on a corresponding relationship between the stored categories and/or identifiers and the first parameter vector;

The neural network model module may be specifically configured to obtain the stored model parameters of the trained neural network model, and load the obtained model parameters into the neural network model to obtain the trained neural network model.

In an embodiment, the permutation module may be specifically configured to perform N-dimensional permutation on the first parameter vector through N affine transformation matrices to obtain N second parameter vectors each having N dimensions, such that one of the N second parameter vectors each having N dimensions is the same as the first parameter vector, and values of the other second parameter vectors in each dimension are different from a value of the first parameter vector in the corresponding dimension.

For example, for the k-th affine transformation matrix, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, the first k−1 elements of the first parameter vector are placed at the end of the first parameter respectively, to obtain N−1 second parameter vectors each having N dimensions, where k=1, . . . N.

In an embodiment, the permutation module may be specifically configured to the exchange the value of the dimension corresponding to the identifier of the to-be-acquired data in the first parameter vector with the value of the first dimension in the first parameter vector, to obtain N second parameter vectors each having N dimensions.

For example, for the k-th affine transformation matrix, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, the k-th element of the first parameter vector is exchanged with the first element, to obtain N−1 second parameter vectors each having N dimensions, where k represents the identifier of to-be-acquired data, k=1, . . . N.

In an embodiment, the permutation module may further include an affine transformation matrix online generation module, which is configured to generate each affine transformation matrix online according to a preset transformation rule.

An embodiment of the present application also provides a data storage device, which is characterized in that the device includes a memory and a processor, wherein the memory is configured to store instructions that, when executed by the processor, cause the processor to implement the steps of the data storage method.

An embodiment of the present application also provides a data acquisition device, which is characterized in that the device includes a memory and a processor, wherein the memory is configured to store instructions that, when executed by the processor, cause the processor to implement the steps of the data acquisition method.

The memory may include random access memory (RAM), and may also include non-volatile memory (NVM), such as at least one disk memory. Optionally, the memory may also be at least one storage device located far away from the foregoing processor.

The above-mentioned processor may be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it may also be a digital signal processor (DSP), an application specific integrated circuit (ASIC), Field-Programmable Gate Array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components.

An embodiment of the present application also provides a data acquisition device, which includes:

a first obtaining module, configured to obtain a stored first parameter vector according to information of to-be-acquired data;

configured to perform N-dimensional replacement on the first parameter vector to obtain N-dimensional second parameter vectors corresponding to the to-be-acquired data, where N is the number of dimensions of the first parameter vector;

a replacement module, configured to obtain a trained neural network model used for data storage;

a second obtaining module, configured to use the second parameter vectors as input variables of the trained neural network model, and use output data of the trained neural network model as the to-be-acquired data.

In an embodiment, the above first obtaining module may be specifically configured to: obtain the first parameter vector according to categories and/or identifiers of the to-be-acquired data based on a corresponding relationship between the stored categories and/or identifiers and the first parameter vector;

the second obtaining module may be specifically configured to obtain the stored model parameters of the trained neural network model, and load the obtained model parameters into the neural network model to obtain the trained neural network model.

In an embodiment, the above permutation module may be specifically configured to perform N-dimensional permutation on the first parameter vector through an affine transformation matrix corresponding to the to-be-acquired data, to obtain N-dimensional second parameter vectors corresponding to the to-be-acquired data.

In an embodiment, the above permutation module may be specifically configured to:

perform N-dimensional permutation on the first parameter vector according to an affine transformation matrix corresponding to the to-be-acquired data, such that: when the affine transformation matrix corresponding to the to-be-acquired data is the k-th affine transformation matrix, when k is equal to 1, the N-dimensional second parameter vector corresponding to the to-be-acquired data is equal to the first parameter vector; when k is not equal to 1, the second parameter vectors are obtained by placing the first k−1 elements of the first parameter vector to the end of the first parameter vector, wherein k=1, . . . N.

In an embodiment, the permutation module may be specifically configured to:

multiply the affine transformation matrix corresponding to the to-be-acquired data by the first parameter vector;

wherein, the affine transformation matrix is an N×N matrix, when the affine transformation matrix corresponding to the to-be-acquired data is the k-th affine transformation matrix, the element a in each of the N affine transformation matrices corresponding to the to-be-acquired data satisfies:

$a_{ij} = \left\{ \begin{matrix} {1,} & {{j \geq {{k\mspace{14mu}{and}\mspace{14mu} j} - i}} = {k - 1}} \\ {1,} & {{j < {{k\mspace{14mu}{and}\mspace{14mu} j} - i}} = {k - 1 - {N.}}} \\ {0,} & {other} \end{matrix} \right.$

In an embodiment, the permutation module may be specifically configured to:

exchange the value of the dimension corresponding to the identifier of the to-be-acquired data in the first parameter vector with the value of the first dimension in the first parameter vector, to obtain the N-dimensional second parameter vectors corresponding to the to-be-acquired data.

In an embodiment, exchanging the value of the dimension corresponding to the identifier of the to-be-acquired data in the first parameter vector with the value of the first dimension in the first parameter vector, to obtain the N-dimensional second parameter vectors corresponding to the to-be-acquired data may include:

performing N-dimensional permutation on the first parameter vector according to the affine transformation matrix corresponding to the to-be-acquired data, such that: when the affine transformation matrix corresponding to the to-be-acquired data is the k-th affine transformation matrix, when k is equal to 1, the N-dimensional second parameter vector corresponding to the to-be-acquired data is equal to the first parameter vector; when k is not equal to 1, the N-dimensional second parameter vectors corresponding to the to-be-acquired data are obtained by exchanging the k-th element of the first parameter vector with the first element, wherein k=1, . . . N, k represents the identifier of the to-be-acquired data.

In an embodiment, the permutation module may be specifically configured to:

multiply the affine transformation matrix corresponding to the to-be-acquired data by the first parameter vector;

wherein, the affine transformation matrix is an N×N matrix, when the affine transformation matrix corresponding to the to-be-acquired data is the k-th affine transformation matrix, the element a_(ij) in each of the N affine transformation matrices corresponding to the to-be-acquired data satisfies:

a_(1k) = 1; a_(k1) = 1; $a_{ij} = \left\{ {\begin{matrix} {1,} & {{i \neq 1},k,{{{and}\mspace{14mu} i} = j}} \\ {0,} & {other} \end{matrix}.} \right.$

An embodiment of the present application also provides an electronic device, which includes a processor and a storage medium. The storage medium stores a computer program, which, when executed by the processor, performs the following steps:

allocating an N-dimensional first parameter vector for N pieces of to-be-stored data;

performing N-dimensional permutation on the first parameter vector, to obtain N second parameter vectors each having N dimensions;

constructing a neural network model that maps the current second parameter vectors to expected data samples of the N pieces of to-be-stored data;

adjusting model parameters of the neural network model and/or the first parameter vector until expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data, the expected data samples being obtained from the current second parameter vectors based on the trained neural network model;

storing the current first parameter vector.

An embodiment of the present application also provides an electronic device, which includes a processor and a storage medium. The storage medium stores a computer program, which, when executed by the processor, performs the following steps:

obtaining a stored first parameter vector according to information of to-be-acquired data;

performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions, where N is the number of dimensions of the first parameter vector;

obtaining a trained neural network model used for data storage;

using the N second parameter vectors as input variables of the trained neural network model, and using output data of the trained neural network model as the to-be-acquired data.

An embodiment of the present application also provides an electronic device, which includes a processor and a storage medium. The storage medium stores a computer program, which, when executed by the processor, performs the following steps:

obtaining a stored first parameter vector according to information of to-be-acquired data;

performing N-dimensional permutation on the first parameter vector to obtain N-dimensional second parameter vectors corresponding to the to-be-acquired data, where N is the number of dimensions of the first parameter vector;

obtaining a trained neural network model used for data storage;

using the second parameter vectors as input variables of the trained neural network model, and using output data of the trained neural network model as the to-be-acquired data.

An embodiment of the present application also provides a computer-readable storage medium in which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:

allocating an N-dimensional first parameter vector for N pieces of to-be-stored data;

performing N-dimensional permutation on the first parameter vector, to obtain N second parameter vectors each having N dimensions;

constructing a neural network model that maps the current second parameter vectors to expected data samples of the N pieces of to-be-stored data;

adjusting model parameters of the neural network model and/or the first parameter vector until expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data, the expected data samples being obtained from the current second parameter vectors based on the trained neural network model;

storing the current first parameter vector.

An embodiment of the present application also provides a computer-readable storage medium in which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:

obtaining a stored first parameter vector according to information of to-be-acquired data;

performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions, where N is the number of dimensions of the first parameter vector;

obtaining a trained neural network model used for data storage;

using the N second parameter vectors as input variables of the trained neural network model, and using output data of the trained neural network model as the to-be-acquired data.

An embodiment of the present application also provides a computer-readable storage medium in which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:

obtaining a stored first parameter vector according to information of to-be-acquired data;

performing N-dimensional permutation on the first parameter vector to obtain N-dimensional second parameter vectors corresponding to the to-be-acquired data, where N is the number of dimensions of the first parameter vector;

obtaining a trained neural network model used for data storage;

using the second parameter vectors as input variables of the trained neural network model, and using output data of the trained neural network model as the to-be-acquired data.

An embodiment of the present application also provides a computer program, which implements the following steps when the computer program is executed by a processor:

allocating an N-dimensional first parameter vector for N pieces of to-be-stored data;

performing N-dimensional permutation on the first parameter vector, to obtain N second parameter vectors each having N dimensions;

constructing a neural network model that maps the current second parameter vectors to expected data samples of the N pieces of to-be-stored data;

adjusting model parameters of the neural network model and/or the first parameter vector until expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data, the expected data samples being obtained from the current second parameter vectors based on the trained neural network model;

storing the current first parameter vector.

An embodiment of the present application also provides a computer program, which implements the following steps when the computer program is executed by a processor:

obtaining a stored first parameter vector according to information of to-be-acquired data;

performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions, where N is the number of dimensions of the first parameter vector;

obtaining a trained neural network model used for data storage;

using the N second parameter vectors as input variables of the trained neural network model, and using output data of the trained neural network model as the to-be-acquired data.

An embodiment of the present application also provides a computer program, which implements the following steps when the computer program is executed by a processor:

obtaining a stored first parameter vector according to information of to-be-acquired data;

performing N-dimensional permutation on the first parameter vector to obtain N-dimensional second parameter vectors corresponding to the to-be-acquired data, where N is the number of dimensions of the first parameter vector;

obtaining a trained neural network model used for data storage;

using the second parameter vectors as input variables of the trained neural network model, and using output data of the trained neural network model as the to-be-acquired data.

For the device/electronic device/storage medium/computer program embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and the relevant parts can be referred to the part of the description of the method embodiment.

It should be noted that although the present application is described with data storage and acquisition as examples, it should be understood that this application is not only used for data storage, but also can be applied to data characterization, for example, to represent complex data information by simplified data information, and it can also be configured to reduce data dimensions, for example, reducing high-dimensional data to low-dimensional data.

It should be noted that, relationship terms such as “first,” “second” and the like are only configured to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply that there is any such actual relationship or order between those entities or operations. Moreover, the terms “include,” “comprise” or any other variants are intended to cover a non-exclusive inclusion, such that processes, methods, objects or devices comprising a series of elements include not only those elements, but also other elements not specified or the elements inherent to those processes, methods, objects, or devices. Without further limitations, an element limited by the phrase “comprise(s) a . . . ” do not exclude that there are other identical elements in the processes, methods, objects, or devices that comprise that element.

The above descriptions are merely preferred embodiments of the present application, and are not intended to limit the protection scope of the present application. Any modification, equivalent permutation, and improvement made within the spirit and principle of the present application fall within the protection scope of the present application. 

1. A data storage method, wherein the method comprises: allocating an N-dimensional first parameter vector for N pieces of to-be-stored data; performing N-dimensional permutation on the first parameter vector, to obtain N second parameter vectors each having N dimensions; constructing a neural network model that maps the current second parameter vectors to expected data samples of the N pieces of to-be-stored data; adjusting model parameters of the neural network model and/or the first parameter vector until expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data, the expected data samples being obtained from the current second parameter vectors based on the trained neural network model; storing the current first parameter vector.
 2. The method according to claim 1, wherein it further comprises: performing N-dimensional permutation on the current first parameter vector and returning to execute the step of adjusting the model parameters of the neural network model and/or the first parameter vector if the expected data samples of the N pieces of to-be-stored data do not regress to the N pieces of to-be-stored data, wherein the expected data samples are obtained from the current second parameter vectors based on the trained neural network model.
 3. The method according to claim 1, wherein it further comprises: classifying the N pieces of to-be-stored data according to categories, and/or assigning an identifier for each piece of the to-be-stored data and storing a corresponding relationship between the category and/or identifier and the first parameter vector; the method further comprises: storing the model parameters of the trained neural network model; the initial values of the parameters of each dimension in the first parameter vector being obtained by sampling the N pieces of to-be-stored data according to Gaussian distribution random values.
 4. The method according to claim 3, wherein the performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions comprises: performing N-dimensional permutation on the first parameter vector through N affine transformation matrices to obtain N second parameter vectors each having N dimensions, such that one of the N second parameter vectors each having N dimensions is the same as the first parameter vector, and values of the other second parameter vectors in each dimension are different from a value of the first parameter vector in the corresponding dimension.
 5. The method according to claim 4, wherein the performing N-dimensional permutation on the first parameter vector through N affine transformation matrices to obtain N second parameter vectors each having N dimensions, such that one of the N second parameter vectors each having N dimensions is the same as the first parameter vector, and values of the other second parameter vectors in each dimension are different from a value of the first parameter vector in the corresponding dimension comprises: performing N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively, such that for the k-th affine transformation matrix, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, the first k−1 elements of the first parameter vector are placed at the end of the first parameter respectively, to obtain N−1 second parameter vectors each having N dimensions, where k=1, . . . N.
 6. (canceled)
 7. The method according to claim 3, wherein the performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions comprises: exchanging, for each of the N pieces of to-be-stored data, a value of a dimension corresponding to the identifier of each piece of the to-be-stored data in the first parameter vector with a value of a first dimension in the first parameter vector, to obtain N second parameter vectors each having N dimensions.
 8. The method according to claim 7, wherein, the exchanging, for each of the N pieces of to-be-stored data, a value of a dimension corresponding to the identifier of each piece of the to-be-stored data in the first parameter vector with a value of a first dimension in the first parameter vector, to obtain N second parameter vectors each having N dimensions comprises: performing N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively, such that for the k-th affine transformation matrix, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, the k-th element of the first parameter vector is exchanged with the first element, to obtain N−1 second parameter vectors each having N dimensions, where k represents an identifier of to-be-stored data, k=1, . . . N.
 9. (canceled)
 10. The method according to claim 1, wherein the adjusting model parameters of the neural network model and/or the first parameter vector until expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data, the expected data samples being obtained from the current second parameter vectors based on the trained neural network model, comprises: training the module parameters of the neural network module by using the N second parameter vectors each having N dimensions as input variables of the neural network model and using output data of the neural network model as the expected data samples of the N pieces of to-be-stored data, and/or updating the first parameter vector during the training process, until the expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data.
 11. The method according to claim 10, wherein, the training the module parameters of the neural network module and/or updating the first parameter vector during the training process until the expected data samples of the N pieces of to-be-stored data regress to the N pieces of to-be-stored data comprises: initializing the model parameters of the neural network model; accumulating current number of iterations; inputting the current second parameter vectors into the current neural network model to obtain current expected data samples of the N pieces of to-be-stored data, calculating a loss function of the current expected data sample and the N pieces of to-be-stored data, and optimizing the model parameters and/or the first parameter vector of the current neural network model according to the principle of making the loss function converge, to obtain model parameters of the neural network model optimized for this iteration and/or the updated first parameter vector; using the second parameter vectors after the previous iteration as the current second parameter vectors, or performing N-dimensional permutation on the adjusted first parameter vector to obtain the second parameter vectors; returning to execute the step of accumulating the current number of iterations until the current number of iterations reaches a predetermined number of iterations, or the loss function converges to a predetermined threshold, to obtain the model parameters of the trained neural network model and/or the updated first parameter vector.
 12. The method according to claim 11, wherein, the neural network model is a deep learning neural network model; the loss function is a regression loss function; the affine transformation matrix is generated online according to the current k value, where k=1, . . . N.
 13. A data acquisition method, wherein the method comprises: obtaining a stored first parameter vector according to information of to-be-acquired data; performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions, where N is the number of dimensions of the first parameter vector; obtaining a trained neural network model used for data storage; using the N second parameter vectors as input variables of the trained neural network model, and using output data of the trained neural network model as the to-be-acquired data.
 14. The method according to claim 13, wherein, the obtaining a stored first parameter vector according to information of to-be-acquired data comprises: obtaining the first parameter vector according to categories and/or identifiers of the to-be-acquired data based on a corresponding relationship between the stored categories and/or identifiers and the first parameter vector; the obtaining a trained neural network model used for data storage, comprises: obtaining stored model parameters of the trained neural network model, and loading the obtained model parameters into the neural network model to obtain the trained neural network model.
 15. The method according to claim 13, wherein, the performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions comprises: performing N-dimensional permutation on the first parameter vector through N affine transformation matrices to obtain N second parameter vectors each having N dimensions, such that one of the N second parameter vectors each having N dimensions is the same as the first parameter vector, and values of the other second parameter vectors in each dimension are different from a value of the first parameter vector in the corresponding dimension.
 16. The method according to claim 15, wherein, the performing N-dimensional permutation on the first parameter vector through N affine transformation matrices to obtain N second parameter vectors each having N dimensions, such that one of the N second parameter vectors each having N dimensions is the same as the first parameter vector, and values of the other second parameter vectors in each dimension are different from a value of the first parameter vector in the corresponding dimension comprises: performing N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively, such that for the k-th affine transformation matrix, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, the first k−1 elements of the first parameter vector are placed at the end of the first parameter respectively, to obtain N−1 second parameter vectors each having N dimensions, where k=1, . . . N.
 17. (canceled)
 18. The method according to claim 13, wherein the performing N-dimensional permutation on the first parameter vector to obtain N second parameter vectors each having N dimensions comprises: exchanging a value of a dimension corresponding to the identifier of the to-be-acquired data in the first parameter vector with a value of a first dimension in the first parameter vector, to obtain N second parameter vectors each having N dimensions.
 19. The method according to claim 18, wherein, the exchanging a value of a dimension corresponding to the identifier of the to-be-acquired data in the first parameter vector with a value of a first dimension in the first parameter vector, to obtain N second parameter vectors each having N dimensions comprises: performing N-dimensional permutation on the first parameter vector through N affine transformation matrices respectively, such that for the k-th affine transformation matrix, when k is equal to 1, the second parameter vector is equal to the first parameter vector; when k is not equal to 1, the k-th element of the first parameter vector is exchanged with the first element, to obtain N−1 second parameter vectors each having N dimensions, where k represents the identifier of to-be-acquired data, k=1, . . . N.
 20. (canceled)
 21. A data acquisition method, wherein the method comprises: obtaining a stored first parameter vector according to information of to-be-acquired data; performing N-dimensional permutation on the first parameter vector to obtain N-dimensional second parameter vectors corresponding to the to-be-acquired data, where N is the number of dimensions of the first parameter vector; obtaining a trained neural network model used for data storage; using the second parameter vectors as input variables of the trained neural network model, and using output data of the trained neural network model as the to-be-acquired data.
 22. (canceled)
 23. A non-transitory computer readable storage medium, wherein a computer program is stored in the computer readable storage medium, the computer program implements the steps of the data storage method according to claim 1 when being executed by a processor.
 24. A non-transitory computer readable storage medium, wherein a computer program is stored in the computer readable storage medium, the computer program implements the steps of the data acquisition method according to claim 1 when being executed by a processor.
 25. A non-transitory computer readable storage medium, wherein a computer program is stored in the computer readable storage medium, the computer program implements the steps of the data acquisition method according to claim 21 when being executed by a processor. 